
$(function () {
    setTimeout('$("html").removeClass("js")', 1);
    roleMgrFuc.searchRoleValidation();
    roleMgrFuc.addRoleValidation();
    roleMgrFuc.updateRoleValidation();
    
    $("#search_btn").click(function(){
        //清空pageIndex
        $("input[name=currentPage]").val(1);
    });
});

/*显示增加角色信息 开始*/
var addUserMap = new Map();
var addMenuMap = new Map();
var addPermissionMap = new Map();
$("#add_role_btn").click(function() {
	add_bind_user($("#add_user_name").val());
	add_bind_menu($("#add_menu_name").val());
	add_bind_permission($("#add_permission_name").val());
    $("#add_role_win").modal('show');
});
//用户
$("#add_user_search_btn").click(function(){
	add_bind_user($("#add_user_name").val());
});
function add_bind_user(userName){
	$("#add_user_start_set").empty();
	$.post("user/findUser.action",{userName:userName},function(json){
		if (json&&json.success) {
		  $.each(json.result.data, function(i,item){
			  if(!addUserMap.containsKey(item.userId.toString())){
				  $("#add_user_start_set").append("<label class='checkbox'><input type='checkbox' value='"+item.userId+"'/><font title='"+item.nickName+"'>"+item.userName+"</font></label>");
			  }
		  });
		}else {
        	alert(json?json.msg:"请求失败！");
        }
	});
}
$("#add_user_right_btn").click(function(){
	$("#add_user_start_set>label>:checkbox:checked").each(function(i,item){		
		if(!addUserMap.containsKey(item.value)){
			addUserMap.put(item.value,item.value);
			$("#add_user_end_set").prepend($(item).parent());
		}
	});
});

$("#add_user_left_btn").click(function(){
	$("#add_user_end_set>label>:checkbox:checked").each(function(i,item){
		if(addUserMap.containsKey(item.value)){
			addUserMap.remove(item.value);
			$("#add_user_start_set").prepend($(item).parent());
		}
	});
});
//菜单
$("#add_menu_search_btn").click(function(){
	add_bind_menu($("#add_menu_name").val());
});
function add_bind_menu(menuName){
	$("#add_menu_start_set").empty();
	$.post("menu/findMenu.action",{menuName:menuName},function(json){
		if (json&&json.success) {
		  $.each(json.result.data, function(i,item){
			  if(!addMenuMap.containsKey(item.menuId.toString())){
				  $("#add_menu_start_set").append("<label class='checkbox'><input type='checkbox' value='"+item.menuId+"'/><font title='"+item.menuDescription+"'>"+item.menuName+"</font></label>");
			  }
		  });
		}else {
        	alert(json?json.msg:"请求失败！");
        }
	});
}
$("#add_menu_right_btn").click(function(){
	$("#add_menu_start_set>label>:checkbox:checked").each(function(i,item){		
		if(!addMenuMap.containsKey(item.value)){
			addMenuMap.put(item.value,item.value);
			$("#add_menu_end_set").prepend($(item).parent());
		}
	});
});

$("#add_menu_left_btn").click(function(){
	$("#add_menu_end_set>label>:checkbox:checked").each(function(i,item){
		if(addMenuMap.containsKey(item.value)){
			addMenuMap.remove(item.value);
			$("#add_menu_start_set").prepend($(item).parent());
		}
	});
});
//权限
$("#add_permission_search_btn").click(function(){
	add_bind_permission($("#add_permission_name").val());
});
function add_bind_permission(permissionName){
	$("#add_permission_start_set").empty();
	$.post("permission/findPermission.action",{permissionName:permissionName},function(json){
		if (json&&json.success) {
		  $.each(json.result.data, function(i,item){
			  if(!addPermissionMap.containsKey(item.permissionId.toString())){
				  $("#add_permission_start_set").append("<label class='checkbox'><input type='checkbox' value='"+item.permissionId+"'/><font title='"+item.permissionDescription+"'>"+item.permissionName+"</font></label>");
			  }
		  });
		}else {
        	alert(json?json.msg:"请求失败！");
        }
	});
}
$("#add_permission_right_btn").click(function(){
	$("#add_permission_start_set>label>:checkbox:checked").each(function(i,item){		
		if(!addPermissionMap.containsKey(item.value)){
			addPermissionMap.put(item.value,item.value);
			$("#add_permission_end_set").prepend($(item).parent());
		}
	});
});

$("#add_permission_left_btn").click(function(){
	$("#add_permission_end_set>label>:checkbox:checked").each(function(i,item){
		if(addPermissionMap.containsKey(item.value)){
			addPermissionMap.remove(item.value);
			$("#add_permission_start_set").prepend($(item).parent());
		}
	});
});
/*显示增加角色信息 结束*/

/*增加角色信息方法 开始*/
$("#add_role_confirm").click(function () {    
    //表单数据验证通过
    if ($('#add_role_form').validate().form()) {        
        $.post("role/add.action",
            {
                roleName: $.trim($("#add_role_name").val()),
                roleDescription:$.trim($("#add_role_description").val()),
                userIds:addUserMap.keys().join(","),
                menuIds:addMenuMap.keys().join(","),
                permissionIds:addPermissionMap.keys().join(",")
            },
            function (json) {
            	if (json&&json.success) {  
                    //关闭增加角色信息窗口
                    $("#add_role_win").modal('hide');
                    //重置表单数据
                    document.getElementById("add_role_form").reset();
                    //重新刷新查询列表
                    refreshPage();
                } else {
                	alert(json?json.msg:"请求失败！");
                }
            });
    }
});
/*增加角色信息方法 结束*/


/*显示修改角色信息 开始*/
var updateUserMap = new Map();
var updateMenuMap = new Map();
var updatePermissionMap = new Map();
function show_update_role(roleId) {
	$.post("role/detail.action",{roleId:roleId},
        function (json) {            
            if (json&&json.success) {            	
                var roleInfo = json.result.data;
                $("#update_role_id").val(roleInfo.roleId);
                $("#update_role_name").val(roleInfo.roleName);
                $("#update_role_description").val(roleInfo.roleDescription);
                $("#update_category").attr("href","category.action?roleId="+roleInfo.roleId);
                //重置用户信息
                updateUserMap.clear();
                $("#update_user_end_set").empty();
	            $.each(json.result.users, function(i,item){
	            	updateUserMap.put(item.userId.toString(),item.userId.toString());
	            	$("#update_user_end_set").append("<label class='checkbox'><input type='checkbox' value='"+item.userId+"'/><font title='"+item.nickName+"'>"+item.userName+"</font></label>");
	            });
	            //绑定用户信息
	            update_bind_user($("#update_user_name").val());
	            
	            //重置菜单信息
                updateMenuMap.clear();
                $("#update_menu_end_set").empty();
	            $.each(json.result.menus, function(i,item){
	            	updateMenuMap.put(item.menuId.toString(),item.menuId.toString());
	            	$("#update_menu_end_set").append("<label class='checkbox'><input type='checkbox' value='"+item.menuId+"'/><font title='"+item.menuDescription+"'>"+item.menuName+"</font></label>");
	            });
	            //绑定菜单信息
	            update_bind_menu($("#update_menu_name").val());
	            
	            //重置权限信息
                updatePermissionMap.clear();
                $("#update_permission_end_set").empty();
	            $.each(json.result.permissions, function(i,item){
	            	updatePermissionMap.put(item.permissionId.toString(),item.permissionId.toString());
	            	$("#update_permission_end_set").append("<label class='checkbox'><input type='checkbox' value='"+item.permissionId+"'/><font title='"+item.permissionDescription+"'>"+item.permissionName+"</font></label>");
	            });
	            //绑定权限信息
	            update_bind_permission($("#update_permission_name").val());
	            
                $("#update_role_win").modal('show');
            }else{
            	alert(json?json.msg:"请求失败！");
            }
        });
}
//用户
$("#update_user_search_btn").click(function(){
	update_bind_user($("#update_user_name").val());
});
function update_bind_user(userName){
	$("#update_user_start_set").empty();
	$.post("user/findUser.action",{userName:userName},function(json){
		if (json&&json.success) {
		  $.each(json.result.data, function(i,item){
			  if(!updateUserMap.containsKey(item.userId.toString())){
				  $("#update_user_start_set").append("<label class='checkbox'><input type='checkbox' value='"+item.userId+"'/><font title='"+item.nickName+"'>"+item.userName+"</font></label>");
			  }
		  });
		}else {
        	alert(json?json.msg:"请求失败！");
        }
	});
}
$("#update_user_right_btn").click(function(){
	$("#update_user_start_set>label>:checkbox:checked").each(function(i,item){		
		if(!updateUserMap.containsKey(item.value)){
			updateUserMap.put(item.value,item.value);
			$("#update_user_end_set").prepend($(item).parent());
		}
	});
});

$("#update_user_left_btn").click(function(){
	$("#update_user_end_set>label>:checkbox:checked").each(function(i,item){
		if(updateUserMap.containsKey(item.value)){			
			updateUserMap.remove(item.value);
			$("#update_user_start_set").prepend($(item).parent());
		}
	});
});

//菜单
$("#update_menu_search_btn").click(function(){
	update_bind_menu($("#update_menu_name").val());
});
function update_bind_menu(menuName){
	$("#update_menu_start_set").empty();
	$.post("menu/findMenu.action",{menuName:menuName},function(json){
		if (json&&json.success) {
		  $.each(json.result.data, function(i,item){
			  if(!updateMenuMap.containsKey(item.menuId.toString())){
				  $("#update_menu_start_set").append("<label class='checkbox'><input type='checkbox' value='"+item.menuId+"'/><font title='"+item.menuDescription+"'>"+item.menuName+"</font></label>");
			  }
		  });
		}else {
        	alert(json?json.msg:"请求失败！");
        }
	});
}
$("#update_menu_right_btn").click(function(){
	$("#update_menu_start_set>label>:checkbox:checked").each(function(i,item){		
		if(!updateMenuMap.containsKey(item.value)){
			updateMenuMap.put(item.value,item.value);
			$("#update_menu_end_set").prepend($(item).parent());
		}
	});
});

$("#update_menu_left_btn").click(function(){
	$("#update_menu_end_set>label>:checkbox:checked").each(function(i,item){
		if(updateMenuMap.containsKey(item.value)){			
			updateMenuMap.remove(item.value);
			$("#update_menu_start_set").prepend($(item).parent());
		}
	});
});

//权限
$("#update_permission_search_btn").click(function(){
	update_bind_permission($("#update_permission_name").val());
});
function update_bind_permission(permissionName){
	$("#update_permission_start_set").empty();
	$.post("permission/findPermission.action",{permissionName:permissionName},function(json){
		if (json&&json.success) {
		  $.each(json.result.data, function(i,item){
			  if(!updatePermissionMap.containsKey(item.permissionId.toString())){
				  $("#update_permission_start_set").append("<label class='checkbox'><input type='checkbox' value='"+item.permissionId+"'/><font title='"+item.permissionDescription+"'>"+item.permissionName+"</font></label>");
			  }
		  });
		}else {
        	alert(json?json.msg:"请求失败！");
        }
	});
}
$("#update_permission_right_btn").click(function(){
	$("#update_permission_start_set>label>:checkbox:checked").each(function(i,item){		
		if(!updatePermissionMap.containsKey(item.value)){
			updatePermissionMap.put(item.value,item.value);
			$("#update_permission_end_set").prepend($(item).parent());
		}
	});
});

$("#update_permission_left_btn").click(function(){
	$("#update_permission_end_set>label>:checkbox:checked").each(function(i,item){
		if(updatePermissionMap.containsKey(item.value)){			
			updatePermissionMap.remove(item.value);
			$("#update_permission_start_set").prepend($(item).parent());
		}
	});
});

$("#update_role_cancel").click(function(){
	$("#update_role_win").modal('hide');
});
/*显示修改角色信息 结束*/


/*提交修改角色信息 开始*/
$("#update_role_confirm").click(function () {
    if ($('#update_role_form').validate().form() ) {        
        $.post("role/edit.action",
            {
        		roleId: $("#update_role_id").val(),
                roleName:$.trim($("#update_role_name").val()),
                roleDescription:$.trim($("#update_role_description").val()),
                userIds:updateUserMap.keys().join(","),
                menuIds:updateMenuMap.keys().join(","),
                permissionIds:updatePermissionMap.keys().join(",")
            },
            function (json) {
            	if (json&&json.success) {
                    //关闭修改角色窗口
                    $("#update_role_win").modal('hide');
                    //重置表单数据
                    //刷新角色管理查询列表页面
                    refreshPage();

                } else{
                	alert(json?json.msg:"请求失败！");
                }
            });
    }
});

/*显示详细角色信息 开始*/
function show_detail_role(roleId) {
    $.post("role/detail.action",{roleId:roleId},
        function (json) {
            if (json&&json.success) {            	
                var roleInfo = json.result.data;
                $("#detail_role_id").val(roleInfo.roleId);
                $("#detail_role_name").val(roleInfo.roleName);
                $("#detail_create_time").val(new Date(roleInfo.createTime).format());
                $("#detail_update_time").val(new Date(roleInfo.updateTime).format());
                $("#detail_role_description").val(roleInfo.roleDescription);
                
                $("#detail_user_set").empty();
	            $.each(json.result.users, function(i,item){
	            	$("#detail_user_set").append("<span>"+item.userName+"</span><br/>");
	            });
	            
	            $("#detail_menu_set").empty();
	            $.each(json.result.menus, function(i,item){
	            	$("#detail_menu_set").append("<span>"+item.menuName+"</span><br/>");
	            });
	            
	            $("#detail_permission_set").empty();
	            $.each(json.result.permissions, function(i,item){
	            	$("#detail_permission_set").append("<span>"+item.permissionName+"</span><br/>");
	            });

                $("#detail_category_set").empty();
                $.each(json.result.categorys, function(i,item){
                    $("#detail_category_set").append("<span>"+item.oneCategoryName+" > "+item.twoCategoryName+" > "+item.threeCategoryName+"</span><br/>");
                });
	            
                $("#detail_role_win").modal('show');
            }else{
            	alert(json?json.msg:"请求失败！");
            }
        });
}

$("#detail_role_confirm").click(function(){
	$("#detail_role_win").modal('hide');
});
/*显示详细角色信息 结束*/

// 函数定义
roleMgrFuc = {
	searchRoleValidation:function () {
        reg_validator = jQuery('#search_form').validate({
            errorClass:'error',
            validClass:'valid',
            highlight:function (element) {
                $(element).closest('div').addClass("f_error");
            },
            unhighlight:function (element) {
                $(element).closest('div').removeClass("f_error");
            },
            errorPlacement:function (error, element) {
                $(element).closest('div').append(error);
            },
            rules:{
            	//roleId:{digits:true}
            },
            messages:{
            	//roleId:{digits:"角色编号必须是整数！"}
            },
            invalidHandler:function (form, validator) {
                $.sticky("您的查询条件有问题，请仔细检查！", {autoclose:5000, position:"top-right", type:"st-error" });
            }
        })
    },
    // validator 创建角色
    addRoleValidation:function () {
        reg_validator = jQuery('#add_role_form').validate({
            errorClass:'error',
            validClass:'valid',
            highlight:function (element) {
                $(element).closest('div').addClass("f_error");
            },
            unhighlight:function (element) {
                $(element).closest('div').removeClass("f_error");
            },
            errorPlacement:function (error, element) {
                $(element).closest('div').append(error);
            },
            rules:{
                add_role_name:{ required:true },
                add_role_description:{ required:true }
            },
            messages:{
                add_role_name:{ required:"角色名称不能为空！" },
                add_role_description:{ required:"角色描述不能为空！" }
            },
            invalidHandler:function (form, validator) {
                $.sticky("您的表单填写的有问题，请仔细检查！", {autoclose:5000, position:"top-right", type:"st-error" });
            }
        })
    },
    // validator 修改角色
    updateRoleValidation:function () {
        reg_validator = jQuery('#update_role_form').validate({
            errorClass:'error',
            validClass:'valid',
            highlight:function (element) {
                $(element).closest('div').addClass("f_error");
            },
            unhighlight:function (element) {
                $(element).closest('div').removeClass("f_error");
            },
            errorPlacement:function (error, element) {
                $(element).closest('div').append(error);
            },
            rules:{
                update_role_name:{ required:true },
                update_role_description:{ required:true }
            },
            messages:{
                update_role_name:{ required:"角色名称不能为空！" },
                update_role_description:{ required:"角色描述不能为空！" }
            },
            invalidHandler:function (form, validator) {
                $.sticky("您的表单填写的有问题，请仔细检查！", {autoclose:5000, position:"top-right", type:"st-error" });
            }
        })
    }
};




